Advances in processor and network capabilities have increased the capabilities of using multiple processors working in parallel to perform complex computing tasks. This type of parallel processing can sometimes be referred to as “cloud computing.” By distributing complex tasks across many processors, the overall time to complete a complex task can be reduced. Unfortunately, the ability to use parallel resources also means that if a complex task is described incorrectly, or if the parallel implementation of the task is done poorly, a large amount of resources can be used inefficiently before the error in task construction is detected.